草庐IT

HTTP 消息结构

全部标签

arrays - 提高在结构 slice 中搜索值的性能

我如何优化下面的代码以搜索map数组中的特定键值(然后返回其他键值)?typeuserMapstruct{JiraUsernamestringCHProjectIDintCHIDstring}funcmain(){varuserMaps[]userMapuserMaps=append(userMaps,userMap{JiraUsername:"ted",CHProjectID:81,CHID:"23jk3f32jl3323",})fmt.Println(GetUserInfo(userMaps,"ted"))}funcGetUserInfo(userMaps[]userMap,jir

go - 无法控制父初始化时初始化嵌入式结构

我有这样的结构:typeParentstruct{*WithContext}typeWithContextstruct{Ctxcontext.Context}func(wi*WithContext)SetContext(ctxcontext.Context){//nilpointerwi.Ctx=ctx}Parent由一些自动化过程初始化(作为解码流程的一部分),所以我无法初始化嵌入的WithContext结构,有什么方法可以避免“SetContext”函数中的nil指针吗?我尝试覆盖指针接收器,但它没有任何效果,谢谢,阿萨夫。 最佳答案

http - Go http客户端不遵循重定向

我有一个检查url的函数:funcCheckurl(urlstring){client:=&http.Client{}req,err:=http.NewRequest("GET",url,nil)resp,err:=client.Get(url)错误变量:意外的EOF在tcpdump中我看到重定向和连接关闭:15:53:41.510722IP(tos0x0,ttl248,id18315,offset0,flags[none],protoTCP(6),length123)XXX.XXX.XXX.XXX.80>XXX.XXX.XXX.XXX.53618:Flags[F.],cksum0xb

golang http 服务器通过套接字发送 r.URL.Path

我有一个http服务器,我想使用套接字将r.URL.Path文本发送到客户端我得到一个错误:undefined:conninconn.Write这是因为conn是在另一个函数中定义的我尝试过的:packagemainimport("net""io""net/http")ln,_:=net.Listen("tcp",":8081")conn,_:=ln.Accept()funchello(whttp.ResponseWriter,r*http.Request){io.WriteString(w,"Helloworld!")conn.Write([]byte(r.URL.Path+"\n"

http - TCP 是同一主机中 Go 程序之间通信的最佳方法吗?

假设我有两个独立的Go程序在我的本地主机上运行,​​就性能而言,TCP是否是在两个程序之间传输数据的最佳方法? 最佳答案 简短的回答是否定的。TCP/IP堆栈很慢,尤其是TCP部分。因此,就性能而言,您最好使用本地进程间通信方法,例如应用程序或Unix套接字之间的共享内存。如果您必须使用网络堆栈进行通信(例如,您计划在主机之间移动应用程序),那么UDP或原始套接字是性能方面的最佳选择。只有当你:必须使用网络并且您需要一个可靠的通信channel,那么TCP是一个不错的选择。因此,只需浏览您的要求并确定它是否是最适合您的方法。

go - 如何在没有嵌套循环的情况下将嵌套结构塑造成另一个结构?

如何将A和B的选定值注入(inject)下面的子C?decoder.go(Playgroundlink)packagemainimport("fmt")typeInputstruct{A[]A}typeAstruct{AIDintB[]B}typeBstruct{BIDintC[]C}typeCstruct{//IwanttoinjectonlyAIDandBIDhere//But,withoutinjectingAandBdirectly//(withoutrecursively)CIDint}funcmain(){res:=Input{A:[]A{A{AID:1,B:[]B{B{B

go - 序列化为JSON动态结构

所有使用JSON的示例都描述了如何序列化为JSON简单类型或用户类型(如结构)。但我有不同的情况:a)我不知道我的类型/对象的字段b)每个对象都有不同的类型。这是我的案例的伪代码:while`select*fromitem`dowhile`selectfieldname,fieldvaluefromfieldswherefields.itemid=item.id`do...对于我数据库中的每个实体,我都获得了字段名称和字段值。结果我需要得到这样的东西:{"item.field1":value,..."item.fieldN":value,"custom_fields":{"fields

go - 为从其他包声明的结构分配一个值

这是我的代码。我将我的结构OperatInfo提取到struct.go并想在worker.go的主包中使用这个结构。结构.gopackagebatchtypeOperatInfostruct{eventIdstringhallIdstringuserIdstringoperatingstringoperatingIDstringipstring}worker.gopackagemainimport("time""fmt""strconv""./kernel/api""./kernel/db""./batch/basic""./batch/struct")varoperatInfobat

go - 使用 initilzer 函数创建的结构不会导出到测试包中吗?

假设我们有一个struct和一个类似这样的结构的构造函数packagemyPackagetypeClientstruct{aTypeAbTypeB}funcNewClient(aTypeA,bTypeB)ConcreteClient{return&Client{a:a,b:b,}}typeConcreteClientinterface{ExportedFunc()}func(c*Client)privateFunc(){//...}func(c*Client)ExportedFunc(){//...}我们在这样的测试包中使用这个客户端var(c=&Client{a:a,b:b,})fu

function - 结构中缺少函数体和字符串标记

这个问题在这里已经有了答案:Functionsignaturewithnofunctionbody(1个回答)关闭4年前。我在Go中发现了一些没有函数体的函数。我知道这意味着Go中的外部函数。但是我在哪里可以找到函数boby呢?typeCreatorfunc(*Beat,*common.Config)(Beater,error)我还在Gostruct中找到了一个字符串。什么意思?typeBeatConfigstruct{//output/publishingrelatedconfigurationsOutputcommon.ConfigNamespace`config:"output"